1 LIN comparison of CASAL and Casal2 model configurations

This document compares the results of at least 2 CASAL model configurations (base and at least one sensitivity) and up to 8 Casal2 model configurations (3 BetaDiff, 2 CppAD, and 3 ADOL-C).

The CASAL model sensitivity 1 has a smaller minimisation tolerance value than the CASAL base model (1e-6 vs. 2e-3).

The Casal2 ADOL-C and BetaDiff low tolerance models have a smaller tolerance value than the CASAL base model (1e-6 vs. 2e-3). The Casal2 CppAD models have a tolerance value of 1e-9.

1.1 LIN model characteristics

The main characteristics of the Test Case LIN (ling) CASAL model are:

  • one stock, ages 3 - 25
  • one area
  • years 1972 - 2018, projection years 2019 - 2023
  • two time steps: Dec_Aug and Sep_Nov
  • two stock categories: male and female
  • natural mortality-at-age is double exponential
  • sex-specific maturity ogives specified by age
  • sex-specific von Bertalanffy age-length relationship
  • sex-specific length-weight relationship (\(W = aL^b\))
  • Beverton-Holt stock-recruitment relationship, with steepness (h) 0.84
  • ageing error
  • two surveys with sex-specific logistic selectivity
  • three fisheries, one with double normal selectivity and two with logistic selectivity

Observation data include:

  • survey indices
  • survey proportions-at-age
  • fishery proportions-at-age

Parameters estimated include:

  • B0
  • parameters for the natural mortality-at-age ogive
  • catchability (q) for the two surveys
  • parameters for the sex-specific selectivity curves for the two surveys
  • parameters for the sex-specific selectivity curves for the three fisheries
  • YCS (recruitment deviations)

1.2 LIN model MCMC specifications

The CASAL MCMC options include

  • start 0
  • keep 2500
  • length 30000000
  • stepsize 0.02
  • adaptive_stepsize True
  • adapt_at 10000 50000 150000 250000 450000
  • burn_in 200
  • proposal_t True

The Casal2 ADOL-C and BetaDiff MCMC options include

  • start 0.3
  • keep 2500
  • length 30000000
  • step_size 0.02
  • adapt_stepsize_at 10000 50000 150000 250000 450000
  • proposal_distribution t
  • adapt_stepsize_method double_half
  • max_correlation 0.9

The Casal2 CppAD MCMC runs use the BetaDiff covariance matrices since Casal2 does not output the covariance matrix from CppAD minimisation. The Casal2 CppAD MCMC options include

  • start 0.3
  • keep 2500
  • length 31000000 (originally 30M)
  • step_size 0.02
  • adapt_stepsize_at 10000 50000 150000 250000 450000
  • proposal_distribution t
  • adapt_stepsize_method double_half
  • max_correlation 0.9
  • adapt_covariance_matrix_at 1000000

1.3 R environment

## [1] "Mon Aug  3 17:22:58 2020"
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-redhat-linux-gnu (64-bit)
## Running under: CentOS Linux 7 (Core)
## 
## Matrix products: default
## BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
## 
## locale:
##  [1] LC_CTYPE=en_NZ.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_NZ.UTF-8        LC_COLLATE=en_NZ.UTF-8    
##  [5] LC_MONETARY=en_NZ.UTF-8    LC_MESSAGES=en_NZ.UTF-8   
##  [7] LC_PAPER=en_GB.UTF_8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_NZ.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] casal2_1.0     casal_2.30     devtools_2.3.1 usethis_1.6.1  rlist_0.4.6.1 
##  [6] ggthemes_4.2.0 gridExtra_2.3  coda_0.19-3    ggmcmc_1.4.1   ggplot2_3.3.2 
## [11] tidyr_1.1.0    dplyr_1.0.1   
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.1.0   xfun_0.16          remotes_2.2.0      purrr_0.3.4       
##  [5] lattice_0.20-38    testthat_2.3.2     colorspace_1.4-1   vctrs_0.3.2       
##  [9] generics_0.0.2     htmltools_0.5.0    yaml_2.2.1         rlang_0.4.7       
## [13] pkgbuild_1.1.0     pillar_1.4.6       glue_1.4.1         withr_2.2.0       
## [17] RColorBrewer_1.1-2 sessioninfo_1.1.1  lifecycle_0.2.0    plyr_1.8.6        
## [21] stringr_1.4.0      munsell_0.5.0      gtable_0.3.0       evaluate_0.14     
## [25] memoise_1.1.0      knitr_1.29         GGally_1.4.0       callr_3.4.3       
## [29] ps_1.3.3           fansi_0.4.1        Rcpp_1.0.5         scales_1.1.1      
## [33] backports_1.1.8    desc_1.2.0         pkgload_1.1.0      fs_1.5.0          
## [37] digest_0.6.25      stringi_1.4.6      processx_3.4.3     grid_3.6.0        
## [41] rprojroot_1.3-2    cli_2.0.2          tools_3.6.0        magrittr_1.5      
## [45] tibble_3.0.3       crayon_1.3.4       pkgconfig_2.0.3    ellipsis_0.3.1    
## [49] data.table_1.13.0  prettyunits_1.1.1  assertthat_0.2.1   rmarkdown_2.3     
## [53] reshape_0.8.8      R6_2.4.1           compiler_3.6.0

1.4 CASAL and Casal2 model output

# source('../../R-functions/report_read_in_CASAL_MPD_files.R')
source('../../R-functions/report_read_in_CASAL_MCMC_files.R')
source('../../R-functions/report_read_in_Casal2_MPD_files.R')
source('../../R-functions/report_read_in_Casal2_MCMC_files.R')

1.5 MCMC diagnostics

1.5.1 Diagnostics for the CASAL and Casal2 model MCMC results

For the diagnostics below, the last 10000 samples for each chain are used and subsampled at 10, so that 1000 samples are input into the diagnostic functions.